Transaction systems implement a transaction based on one or more received messages. Electronic exchanges, implemented as Electronic Communication Networks (ECNs), are an example of a system used to electronically trade a wide range of commodities, stocks and/or other items having real world significance. An ECN normally receives messages, e.g., an order from a trader, performs a matching operation, and if a matching order exists, performs a trade. The resulting trade is reported to the traders which placed the matching orders and also to a public system, e.g., for updating published information about the current price of a stock, commodity or other item being traded on the exchange.
Electronic trading on an electronic exchange allows for large numbers of orders to be stored, processed, and executed at relatively low cost. The speed at which a trade can be executed is important since a delay in processing of a message including an order to buy or sell may affect the dollar amount at which the trade is made. While the speed at which a trading system can implement transactions is important, reliability and scalability are often other concerns of major importance.
Traders normally send unicast messages, e.g., orders, to a trading system and receive unicast messages in response to the order messages. To keep various parties aware of transactions, e.g., trades, which are implemented by the trading system, multicast messages may be transmitted advising subscribers to the trading system information on the orders placed and completed on the trading system.
In the case of a multicast message, the message is addressed to a multicast address corresponding to a multicast group. In the case of subscribers to a trading system which are to receive published information, the subscribers may be members of a multicast group to which published information is to be sent. When a order is placed or a trade is completed, the trading system may send a multicast message addressed to a multicast address corresponding to the subscriber group. Switches to which a member of the subscriber group is attached which received the multicast message will forward the message to the multiple group members who listen to the subscriber group multicast address to receive the published trading information to which they subscribe.
For a variety of reasons, multicast messaging is generally considered less reliable than unicast messaging where a message is directed from a source device to a single destination device, e.g., using a unicast address corresponding to the destination device, as opposed to multiple address corresponding to a group of devices which use the same multicast address for receiving messages. While multicast messaging is a convenient way to communicate information from a single source, e.g., a device which publishes trade and order information, it tends to suffer from reliability problems in that members of the group often do not know when to expect a message and/or may have trouble determining if they missed a message due to network forwarding problems and/or other reasons. Accordingly, for a variety of reasons, unicast messaging is traditionally used in a trading system for processing and responding to transaction messages while multicast messages may be used to publish information about orders and/or completed transactions to a list of subscribers.
Trading systems over time may be required to support increasing numbers of transactions while maintaining system reliability. In current trading systems including gateway devices and various servers used to implement a trading transaction, increasing the number of servers or replacing a server often requires changes in the hardware or addressing used by the gateway devices in the system. Similarly, changing or increasing the number of gateway devices often requires a change in the hardware and/or addressing used by the servers in the trading system. It would be desirable if methods and/or apparatus could be developed which could allow changes in servers and/or gateways without requiring changes in hardware or addressing and/or which could be implemented with reduced hardware/addressing changes as compared to known systems which use unicast messaging within a trading system to support trading transactions.
In view of the above, it should be appreciated that there is a need for improved methods of providing missing messages to regain message synchronization. In addition, there is a need for improved protocols and method of using sequence numbers. There is also a need for relieving a client gateway system of the obligation to supply a large number of missing messages to a trader system which has lost synchronization with the ECN. While there is much room for improvement it should be appreciated that systems and apparatus which address one or more of the above issues are useful and desirable and that all embodiments need not address all of the above discussed problems.